跳到主要内容

TypeScript 函数类型

函数类型由参数名、参数类型、返回值类型构成:

type GreetFunction = (a: string) => void;
function greeter(fn: GreetFunction) {
// ...
}

由于函数可以有额外的属性,为了完整声明这样的性质,我们需要在对象类型中加入调用签名:

type DescribableFunction = {
description: string;
(someArg: number): boolean;
};

function doSomething(fn: DescribableFunction) {
console.log(fn.description + " returned " + fn(6));
}

函数也可以用 new 操作符调用,此时它们创建了新的对象;对于这种情况,我们在对象类型中加入含 new 的调用方法:

interface CallOrConstruct {
new (s: string): Date;
(n?: number): number;
}